import unittest
import requests


class TestUnitTest01(unittest.TestCase):
    my_session = None

    # 方法级别方法setUp
    def setUp(self) -> None:
        self.url_verify = 'http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=verify&r=0.06702520110120647'
        self.url_login = 'http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login&t=0.7391502848970675'
        self.headers = {'Content-Type': 'application/x-www-form-urlencoded'}

    def tearDown(self) -> None:
        pass

    # 类级别方法 setUpClass
    @classmethod
    def setUpClass(cls) -> None:
        # 1. 创建 Session 对象
        cls.my_session = requests.Session()

    # 类级别方法 tearDownClass
    @classmethod
    def tearDownClass(cls) -> None:
        # 5. 关闭 Session
        cls.my_session.close()

    # 普通测试方法 - 登录成功！
    def test_01_login_success(self):
        # 2. 使用 Session 对象，发送 获取验证码 http 请求
        self.my_session.get(url=self.url_verify)

        # 3. 使用 Session 对象，发送 登录 http请求 （不需要指定cookie）
        resp_login = self.my_session.post(url=self.url_login, headers=self.headers,
                                          data={'username': '13800138006',
                                                'password': '123456',
                                                'verify_code': '8888'})
        # 断言响应状态码
        self.assertEqual(200, resp_login.status_code)

        # 断言响应结果中status的值为 1
        self.assertEqual(1, resp_login.json().get('status'))

        # 断言响应结果中msg的值为 登陆成功
        self.assertIn('登陆成功', resp_login.json().get('msg'))

        # print(resp_login.json())
